A Unified Symbolic Evaluation Framework for Parallelizing Compilers

نویسندگان

  • Thomas Fahringer
  • Bernhard Scholz
چکیده

The quality of many optimizations and analyses of parallelizing compilers depends signiicantly on the ability to evaluate symbolic expressions and on the amount of information available about program variables at arbitrary program points. In this paper, we describe an eeective and uniied symbolic evaluation framework that statically determines the values of variables and symbolic expressions, assumptions about and constraints between variable values and the condition under which control ow reaches a program statement. We introduce program context, a novel representation for comprehensive and compact control and data ow analysis information. Program contexts are described as rst order logic formulas which enable us to use public domain software for standard symbolic manipulation. Computations are represented as algebraic expressions deened over a program's problem size. Our symbolic evaluation techniques comprise accurate modeling of assignment and input/output statements, branches, loops, recurrences, arrays and procedures. EEciency and accuracy are highly improved by aggressive simpliication techniques. All of our techniques target both linear as well as non-linear expressions and constraints. A variety of examples, including program veriication, dependence analysis, array privatization, communication vectorization and elimination of redundant communication is used to illustrate the eeectiveness of our approach. We present results from a preliminary implementation of our framework as part of a parallelizing compiler that demonstrate the potential performance gains achievable by employing symbolic evaluation to support program parallelization.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Symbolic Program Analysis and Optimization for Parallelizing Compilers

A program ow analysis framework is proposed for parallelizing compilers. Within this framework, symbolic analysis is used as an abstract interpretation technique to solve many of the ow analysis problems in a uniied way. Some of these problems are constant propagation , global forward substitution, detection of loop invariant computations, and induction variable substitution. The solution space...

متن کامل

Symbolic Analysis: A Basis for Parallelization, Optimization, and Scheduling of Programs

This paper presents an abstract interpretation framework for parallelizing compilers. Within this framework, symbolic analysis is used to solve various ow analysis problems in a uniied way. Symbolic analysis also serves as a basis for code generation optimizations and a tool for derivation of computation cost estimates. A loop scheduling strategy that utilizes symbolic timing information is als...

متن کامل

Symbolic expression evaluation to support parallelizing compilers

Symbolic analysis is of paramount importance to further advance the state-of-the-art of parallelizing compilers. The quality of various compiler analyses and optimizing code transformations depend on the ability to evaluate symbolic expressions for equality and inequality (=; <;>) relationships. This paper describes a powerful algorithm that computes lower and/or upper bounds of wide classes of...

متن کامل

Performance Analysis of Symbolic Analysis Techniques for Parallelizing Compilers

Understanding symbolic expressions is an important capability of advanced program analysis techniques. Many current compiler techniques assume that coefficients of program expressions, such as array subscripts and loop bounds, are integer constants. Advanced symbolic handling capabilities could make these techniques amenable to real application programs. Symbolic analysis is also likely to play...

متن کامل

Polaris: Improving the Effectiveness of Parallelizing Compilers

It is the goal of the Polaris project to develop a new parallelizing compiler that will overcome limitations of current compilers. While current parallelizing compilers may succeed on small kernels, they often fail to extract any meaningful parallelism from large applications. After a study of application codes, it was concluded that by adding a few new techniques to current compilers, automati...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • IEEE Trans. Parallel Distrib. Syst.

دوره 11  شماره 

صفحات  -

تاریخ انتشار 2000